package com.xbao.service;

import com.xbao.core.component.page.Pagination;
import com.xbao.model.PeriodRecord;
import com.xbao.model.req.ClsReq;
import com.xbao.model.req.PeriodRecordReq;
import com.xbao.model.req.RecordQuery;
import com.xbao.model.vo.PeriodRecordTotalVo;
import com.xbao.model.vo.PeriodRecordVo;

import java.util.List;

/**
 * Created by qingshengzheng on 18/10/11.
 */
public interface PeriodRecordService {
    public void addPeriodRecord(PeriodRecordReq req);
    public List<PeriodRecordVo> queryPeriodRecordOfCls(Long cid);

    public List<PeriodRecordVo> queryRecordOfCls(ClsReq clsReq);
    public void deletePeriodRecordByClsId(Long cid);

    public void modifyPeriodRecord(PeriodRecordReq recordReq);

    public Long noFinishRecordCount(Long time,Long orgid);
    public void genNewRecordsFromRules(Integer count,Long ruleid);

    public Pagination<PeriodRecordVo> noFinishRecords(Long time,Long orgid);

    public void deletePeriodRecords(List<PeriodRecordReq> recordReqs);

    public PeriodRecordVo nextPeriodRecordOfClss(Long cid,Long currenttime);

    public PeriodRecordTotalVo queryPeriodREcordTotal(Long beginTime,Long endTime,Long orgid );

    public Integer shouldFinishCount(Long beginTime,Long endTime,Long orgid);

    public Integer realFinishCount(Long beginTime,Long endTime,Long orgid);


    public List<PeriodRecordVo> getHistoryRecordsOfCls(RecordQuery query);

    public List<PeriodRecordVo> getHistoryRecordsOfStu(RecordQuery query);

    public List<PeriodRecordVo> getNextRecordsOfStu(RecordQuery query);

    public List<PeriodRecordVo> getNextRecordsOfCls(RecordQuery query);

    public void checkRecord(PeriodRecordReq req);






}
